package cn.tutou.tw.dk;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class AppreFiled {
    public static void main(String[] args) throws Exception {
        // 加载类对象
        Class<?> C =Class.forName("cn.tutou.tw.dk.Human");//cn.tutou.tw.dk.User是字符串
        // 实例化，得到的 o 是 Human 类的实例，或 Human 类的对象
        Object o = C.newInstance();
        // 通过类对象 C 的 getField 方法获取 Human 类中的 name 字段
        // name 代表的是 Human 类中的 name 字段
        Field name = C.getDeclaredField("name");
        // 使用字段对象的 setAccessible 方法使得私有字段允许被访问
        name.setAccessible(true);
        // set 方法的第一个参数是：调用对象，也就是类的实例
        // set 方法的第二个参数是：具体的值
        name.set(o,"coco");
        // 通过反射来获取 name 属性的值
        Method getName = C.getMethod("getName");
        Object result = getName.invoke(o);
        System.out.println(result);//快捷输入--so，然后回车
    }  //
}
